impl(rest): use PQC algorithm when available#16253
Conversation
There was a problem hiding this comment.
Code Review
This pull request introduces support for Post-Quantum Cryptography (PQC) curves (specifically X25519MLKEM768) in the REST transport client by configuring CURLOPT_SSL_EC_CURVES in libcurl when supported. It adds platform-specific implementations to query available crypto groups on OpenSSL and Windows, along with integration tests to verify PQC negotiation. The review feedback identifies a critical buffer overflow in the Windows implementation of AvailableCryptoGroups, a potential null pointer dereference in the OpenSSL implementation, a missing <algorithm> header, and opportunities to optimize string copies and use more idiomatic move semantics.
3e7cca0 to
3676900
Compare
3676900 to
c8da154
Compare
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #16253 +/- ##
==========================================
- Coverage 92.27% 92.27% -0.01%
==========================================
Files 2214 2217 +3
Lines 206505 206596 +91
==========================================
+ Hits 190556 190633 +77
- Misses 15949 15963 +14 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
c8da154 to
dd1b155
Compare
dd1b155 to
87b67bd
Compare
This PR queries the underlying crypto library and configures libcurl to use a hybrid MLKEM algorithm if available. It also includes other non-PQC algorithms as a fallback in case the server does not support the same algorithm as the client.
This PR also introduces a new showcase build that spins up a gapic-showcase server to verify the hybrid MLKEM algorithm is being used.